1 using System;
2 using UnityEngine;
3
4 namespace ProceduralToolkit
5 {
6 public static class GizmosE
7 {
8 private static readonly Action<Vector3, Vector3> drawLine;
9
10 static GizmosE()
11 {
12 drawLine = Gizmos.DrawLine;
13 }
14
15 public static void DrawRay(Ray ray)
16 {
17 Draw.WireRay(drawLine, ray);
18 }
19
20 public static void DrawWireQuadXY(Vector3 position, Quaternion rotation, Vector2 scale)
21 {
22 Draw.WireQuadXY(drawLine, position, rotation, scale);
23 }
24
25 public static void DrawWireQuadXZ(Vector3 position, Quaternion rotation, Vector2 scale)
26 {
27 Draw.WireQuadXZ(drawLine, position, rotation, scale);
28 }
29
30 public static void DrawWireQuadYZ(Vector3 position, Quaternion rotation, Vector2 scale)
31 {
32 Draw.WireQuadYZ(drawLine, position, rotation, scale);
33 }
34
35 public static void DrawWireCube(Vector3 position, Quaternion rotation, Vector3 scale)
36 {
37 Draw.WireCube(drawLine, position, rotation, scale);
38 }
39
40 #region DrawWireCircle
41
42 public static void DrawWireCircleXY(Vector3 position, float radius)
43 {
44 Draw.WireCircleXY(drawLine, position, radius);
45 }
46
47 public static void DrawWireCircleXY(Vector3 position, Quaternion rotation, float radius)
48 {
49 Draw.WireCircleXY(drawLine, position, rotation, radius);
50 }
51
52 public static void DrawWireCircleXZ(Vector3 position, float radius)
53 {
54 Draw.WireCircleXZ(drawLine, position, radius);
55 }
56
57 public static void DrawWireCircleXZ(Vector3 position, Quaternion rotation, float radius)
58 {
59 Draw.WireCircleXZ(drawLine, position, rotation, radius);
60 }
61
62 public static void DrawWireCircleYZ(Vector3 position, float radius)
63 {
64 Draw.WireCircleYZ(drawLine, position, radius);
65 }
66
67 public static void DrawWireCircleYZ(Vector3 position, Quaternion rotation, float radius)
68 {
69 Draw.WireCircleYZ(drawLine, position, rotation, radius);
70 }
71
72 #endregion DrawWireCircle
73
74 #region DrawWireArc
75
76 public static void DrawWireArcXY(Vector3 position, float radius, float fromAngle, float toAngle)
77 {
78 Draw.WireArcXY(drawLine, position, radius, fromAngle, toAngle);
79 }
80
81 public static void DrawWireArcXY(Vector3 position, Quaternion rotation, float radius, float fromAngle,
82 float toAngle)
83 {
84 Draw.WireArcXY(drawLine, position, rotation, radius, fromAngle, toAngle);
85 }
86
87 public static void DrawWireArcXZ(Vector3 position, float radius, float fromAngle, float toAngle)
88 {
89 Draw.WireArcXZ(drawLine, position, radius, fromAngle, toAngle);
90 }
91
92 public static void DrawWireArcXZ(Vector3 position, Quaternion rotation, float radius, float fromAngle,
93 float toAngle)
94 {
95 Draw.WireArcXZ(drawLine, position, rotation, radius, fromAngle, toAngle);
96 }
97
98 public static void DrawWireArcYZ(Vector3 position, float radius, float fromAngle, float toAngle)
99 {
100 Draw.WireArcYZ(drawLine, position, radius, fromAngle, toAngle);
101 }
102
103 public static void DrawWireArcYZ(Vector3 position, Quaternion rotation, float radius, float fromAngle,
104 float toAngle)
105 {
106 Draw.WireArcYZ(drawLine, position, rotation, radius, fromAngle, toAngle);
107 }
108
109 #endregion DrawWireArc
110
111 public static void DrawWireSphere(Vector3 position, Quaternion rotation, float radius)
112 {
113 Draw.WireSphere(drawLine, position, rotation, radius);
114 }
115
116 public static void DrawWireHemisphere(Vector3 position, Quaternion rotation, float radius)
117 {
118 Draw.WireHemisphere(drawLine, position, rotation, radius);
119 }
120
121 public static void DrawWireCone(Vector3 position, Quaternion rotation, float apexRadius, float angle,
122 float length)
123 {
124 Draw.WireCone(drawLine, position, rotation, apexRadius, angle, length);
125 }
126 }
127 }